<!DOCTYPE html>
<html>
<head>
	<title>Android SDK开发范例大全（第2版）</title>
	<base href="http://localhost/notebook" />
	<meta name="Author" content="Ford" />
	<meta name="Description" content="A Sample example" />
	<meta charset="utf-8" />
	<link type="text/css" rel="stylesheet" href="notebook/css/zui.css" />
</head>
<body>
<article>
	<header>
		<h1>第1章 了解、深入、动手做</h1>
	</header>
	<section>
		<p>这一章说了本书的组织方式和示例代码的使用。</p>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第2章 Android初体验</h1>
	</header>
	<section>
		<p>配置SDK的下载环境是一定要选中“Force https://... source to be feched using http:...。每个重载方法首先要执行的是super.方法名。res目录用来保存软件设计过程中用到的资源文件，比如图标外观等，asset目录用来保存软件运行过程中用到的资源文件，比如数据库。res/values用来保存以xml格式定义的字符串常数。引用资源的格式如下：@元素标记名/标记的name属性值。</p>
		<p>每个项目都有一个清单文件AndroidManifest.xml用于定义app包括的Activity、Service或Receiver及它们的运行方式等内容。用户暂时离开app时会触发Activity的onPause()事件（不一定会执行，比如，直接退出）。返回后台的Activity时会触发它的onResume()事件。</p>
		<p>Activity的生命周期如下图：</p>
		<img src="notebook/images/activity_life_circle.png" />
		<p>如上图，Activity常用的写入点即程序入口有两个，一个是onCreate一个是onStart。后面介绍的是Eclipse下Android插件的UI编辑器，以及上传App到手机进行测试。需要注意的就是一定要打开手机的USB调试。</p>
	</section>
	<footer>
		<p>这一章介绍了Android App的基本结构和开发环境。</p>
	</footer>
</article>
<article>
	<header>
		<h1>第3章 用户人机界面</h1>
	</header>
	<section>
		<p>要在代码中使用布局文件定义的对象，需要先创建一个对象变量。然后使用findViewById将此对象的赋予变量。比如：</p>
		<pre>
			TextView textView;
			textView = (TextView)findViewById(R.id.myTextView);
		</pre>
		<p>如果需要TextView控件自动进行HTML超链接标记转换，需要在TextView里加上Android:autoLink = "all"，那么如果有超链接的话，就可以显示出来。（这个没有显示成链接，好在也不重要。）</p>
		<p>自定义xml文件格式示例如下，下面是一个values/drawable.xml文件的内容，里面定义了颜色值，注意文件名和里面定义的元素：</p>
		<pre>
			&lt;?xml version="1.0" encoding="utf-8"?&gt;
			&lt;resources&gt;
				&lt;drawable name="white"&gt;#ffffff&lt;/drawable&gt;
				&lt;drawable name="red"&gt;#ff0000&lt;/drawable&gt;
				&lt;drawable name="black"&gt;#000000&lt;/drawable&gt;
			&lt;/resources&gt;
		</pre>
		<p>Android中的常用颜色可以使用Color对象来引用。比如Color.RED。可以style文件中定义样式表，统一定义APP及其控件的外观，只需要控件中用style=@style/样式名即可。样式定义如下：</p>
		<pre>
			&lt;style name="DavidStyleText1"&gt;
				&lt;item name="android:textSize"&gt;18sp&lt;/item&gt;
				&lt;item name="android:textColor"&gt;#ec9237&lt;/item&gt;
			&lt;/style&gt;
		</pre>
		<p>Android中的按钮事件由Button.onClickListener所控制。onClick(View view)方法中的view来自于控件所在父层的ContentView，用来引用父层的状态或属性。</p>
		<p>要在不同页面之间切换最简单的就是改变Activity的Layout，这样还有一个好处，就是不需要传递变量，因为同在一个Activity中，变量可以直接取得。</p>
		<p>Android使用startActivity()来调用另一个Activity，它接受唯一的一个参数intent。当向系统添加新的Activity时必须将其在AndroidManifest.xml文件中添加相关定义。</p>
		<pre>
			&lt;intent-filter&gt;
				&lt;action android:name="android.intent.action.MAIN" /&gt;
				&lt;category android:name="android.intent.category.LAUNCHER" /&gt;	这一行表明点击程序图标将启动这个Acitivty，即程序入口，如果程序中没有这项参数，程序将不会被执行。
			&lt;/intent-filter&gt;
		</pre>
		<p>要结束Activity，可以执行Activity的finish()方法，方法如下：Activity名称.this.finish();。</p>
		<p>要在Activity间传递数据可使用Bundle对象，将数据存入Bundle对象之后，将Bundle对象绑定到Intent对象，然后以startActivity（intent）启动新的Activity即可将数据传递过去（如果要让用户返回本Activity时仍然存在，那就需要用startActivityForResult(intent, 0)来调用，同时需要重写onActivityResult方法），要读取Bundle对象，只需如下：Bundle bundle = this.getIntent().getExtras()。</p>
		<p>在AndroidManifest.xml文件中，对于不重要的Activity可以只简单声明Activity名称，其它参数不用管。</p>
		<p>要创建对话框的话使用new AlertDialog.Builder(当前类.this)。这儿的语法很怪异：</p>
		<pre>
			new AlertDialog.Builder(MyActivity.this)
			.setTitle(R.string.app_about)
			.setMessage(R.string.app_about_msg)
			.setPositiveButton
			(
				R.string.str_ok,
				new DialogInterface.OnClickListener()
				{
					public void onClick(DialogInterface dialogInterface, int i)
					{
						//此处插入单击对话框按钮后的动作
						finish();
					}
				}
			).show;
		</pre>
		<p>APP在运行中需要调用的资源称为外部资源放在assets文件夹中，比如数据库文件及字体文件等。如果需要设置使用外部字体，需要在assets下创建fonts文件夹并放入要使用的字体的（.ttf）文件。提供相对路径给creatFromAsset()来创建TypeFace对象即可。比如：</p>
		<pre>
			mText.setTypeface(Typeface.createFromAssets(getAssets(), "fonts/HandmadeTypewriter.ttf"));
		</pre>
		<p>像上面这样就可以修改字体为自定义类型。但是Android对True Type字体支持不够好（不知现在怎么样了）。还可通过defaultFromStyle来使用Android内置的内款字体。</p>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第4章 史上超豪华的手机控件</h1>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第5章 交互式通信服务与手机控制</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第6章 手机自动服务纪实</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第7章 娱乐多媒体</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第8章 当Android与Internet接轨</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第9章 Google服务与Android完美整合</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>第10章 创意Android程序设计</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
<article>
	<header>
		<h1>附录</h1>
		<section class="tips">
			<ul>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
				<li></li>
			</ul>
		</section>
	</header>
	<section>
	</section>
	<footer>
		<p></p>
	</footer>
</article>
</body>
</html>